package cn.huiyunche.base.service.interfaces;

import cn.huiyunche.base.service.model.CJourney;
import cn.huiyunche.base.service.vo.JourneyVo;
import cn.huiyunche.base.service.vo.LoadJourneyPageVo;
import cn.huiyunche.tools.basic.exceptions.BusinessException;
import org.joda.time.DateTime;

public interface JourneyService {

    /**
     * 上报行程
     *
     * @param journey 行程对象
     * @return
     * @throws BusinessException
     */
    long add(CJourney journey, Boolean isVeneer) throws Exception;

    /**
     * 查询当前用户十天内记录
     *
     * @return
     * @throws BusinessException
     */
    JourneyVo list() throws Exception;

    /**
     * 当前用户当天是否上报
     *
     * @return
     * @throws BusinessException
     */
    String intradayIsReported() throws Exception;

    /**
     * 查询当天最后一次上报行程
     *
     * @return
     * @throws BusinessException
     */
    CJourney todaylastJourney() throws Exception;

    /**
     * 加载头像、已接订单信息
     *
     * @return
     * @throws BusinessException
     */
    LoadJourneyPageVo loadJourney() throws Exception;

    /**
     * 加载头像、已接订单信息
     *
     * @return
     * @throws BusinessException
     */
    LoadJourneyPageVo loadJourneyCity() throws Exception;

    /**
     * 加载头像、当月已接订单信息
     *
     * @return
     * @throws BusinessException
     */
    LoadJourneyPageVo loadJourney(DateTime dt) throws Exception;
}
